#include<bits/stdc++.h>
using namespace std;
typedef long long ll;

ll qsm(ll a,ll n){
	ll res=1;
	while(n){
		if(n&1)res*=a;
		a=a*a;
		n>>=1;
	}
	return res;
}

void solve(){
    ll x,k,a,b,cnt=0;
    cin>>k>>x;
    a=b=qsm(2,k);

    string s="";
    while(x){
    	if(x&1)s='1'+s;
    	else s='0'+s;
    	x>>=1;
    }
    // cout<<s<<'\n';
    vector<int> res;
	bool f=true;
	for(int i=s.size()-1;i>=0;i--){
		if(f && s[i]=='0'){
			continue;
		}
		else if(s[i]=='0'){
			res.push_back(1);
		}
		if(s[i]=='1'){
			if(!f){
				res.push_back(2);
			}
			f=false;
		}
	}
	k=0;
	for(int i=res.size()-1;i>=0;i--){
    	if(res[i]==2){
    		b/=2;
    		a+=b;
    	}else{
    		a/=2;
    		b+=a;
    	}
    }
	// cout<<"a = "<<a<<'\n';
	while(a){
		k++;
		a>>=1;
	}
	int diff=max(0LL,k-(int)s.size());
	// int cnt0=0;
	// for(int i=0;i<62;i++){
	// 	if(!((1<<i)&a))
	// }
	if(res.size()==0){
		cout<<0<<'\n';
		cout<<'\n';
		return;
	}
	cout<<res.size()+diff<<'\n';
	for(int x:res){
		cout<<x<<' ';
	}
	while(diff--){
		cout<<1<<" ";
	}
	cout<<'\n';
}

int main(){
    ios::sync_with_stdio(0);
    cin.tie(0),cout.tie(0);
    int t=1;
    cin>>t;
    while(t--){
        solve();
    }
    return 0;
}